package cn.tedu.egmvc2.base.response;

import lombok.AllArgsConstructor;
import lombok.Getter;
import lombok.NoArgsConstructor;
import lombok.Setter;

//将所有返回状态集合在这个类里面
@Setter
@Getter
@AllArgsConstructor
@NoArgsConstructor
public class JsonResult {
    private Integer status;
    private String message;
    private Object data;
//有返回值类型的构造方法
    public JsonResult(StateCode stateCode,Object data) {
        this.status=stateCode.getState();
        this.message=stateCode.getMessage();
        this.data = data;
    }
    //无返回值类型的构造方法
    public JsonResult(StateCode stateCode){
        this.status=stateCode.getState();
        this.message=stateCode.getMessage();
    }
    //成功相应的方式比较固定，所以可以定义为静态方法，分别是有返回数据和无返回数据两种
    public static JsonResult ok(Object data){
        return new JsonResult(StateCode.OPERATION_SUCCESS,data);
    }
    //没有具体数据返回
    public static JsonResult ok(){
        //return new JsonResult(StateCode.OPERATION_SUCCESS);
        return ok(null);//调用的是上面的ok的方法，参数为空
    }
}
